Switched Multicast Video Streaming

ABSTRACT

A system and method for improving media delivery and display. By utilizing a memory buffer in a DVR or similar device, and broadcasting linear content at a rate other than 1×, services like video on demand or regular broadcasters can be more versatile. For example viewers can start over without launching a separate VOD session. If part of the linear content requested is not in the buffer, a switched multicast stream can be sent to with the proper section of content. Other receivers on the network may also receive the stream and buffer the content if the content is related to what a viewer is viewing.

FIELD OF THE DISCLOSURE

The features disclosed herein relate generally to broadcast media. Morespecifically, aspects of the disclosure are directed towards systems andmethods for enhanced media streaming.

BACKGROUND

Current broadcast and streaming video and media systems offer manyfeatures to viewers. Digital Video Recorders (DVRs) allow viewers torecord and replay live broadcasts. However, viewers watching a livevideo stream cannot rewind the video stream past where they tuned intoit, and also cannot fast forward the video stream, unless they havepaused it, and then they can only catch up to the live video stream.

A similar problem exists for video on demand (VOD) viewers. VOD allowsviewers to modify playback (referred to as “trick play”) such as pause,rewind, fast forward., etc.). VOD features tend to have high latencywhen entering and exiting trick play modes.

Further, conventional near VOD and/or television suffers fromlimitations when someone wants to “start-over” or rewind a program tosee content that was broadcast prior to when they tuned into it. Thecurrent near VOD infrastructure can not support more than a few hundredVOD streams. If a separate unicast VOD stream was to be used to solvethese problems, the system would not be practical on current systems.For example, if popular content like major sporting events or speechesallowed “start-over” VOD sessions, the system would become overloaded ina short period of time.

Unicast VOD sessions take up a large amount of bandwidth for a singleviewer, and they have high latency when entering and exiting trick playmodes. Further, it is not possible to fast forward past the current“live” position of linear broadcast feeds.

SUMMARY

The following presents a simplified summary of the disclosed features inorder to provide a basic understanding of some aspects of thedisclosure. This summary is not an extensive overview of the disclosure.It is not intended to identify key or critical elements of thedisclosure or to delineate the scope of the disclosure. The followingsummary merely presents some concepts of the disclosure in a simplifiedform as a prelude to the more detailed description provided below.

Some embodiments of the disclosure provide enhanced viewer playbackoptions for streamed video and other media. Multiple fast forward andrewind variations, as well as other features may be available. Byutilizing buffer (e.g., a media content storage buffer such as a harddrive buffer on a DVR), and broadcasting the media content faster thanthe playback speed, users can “start-over” without necessarily launchinga separate VOD session. For example, aspects of the present disclosuremask latency and delay as well as avoid the need for many overlappingunicast streams by repeatedly broadcasting and buffering overlappingcontent. Many users may be classified as channel surfing users. Theseusers browse many channels until they find a program they are interestedin viewing. The user then wants to tune back in time to watch theprogram from the beginning. For popular programs, this can create anenormous drain on system resources. This drain may be avoided and anylatency problems masked by multicasting the original content in anon-linear fashion. If part of the linear content requested is not inthe buffer, a switched multicast stream can be received by anyoneneeding that section of content. Where a QAM modulation technique isemployed, multiple segments of the show can be simulcast on the same QAMchannel, which may include many program streams. Where these segmentsare broadcast non-linearly, the user can advantageously start from thebeginning of the show and all latency can be masked. For example, as theuser is watching the program, the program guide or channel surf guidemay initially indicate a red bar at the start of the program indicatingthat the user may not rewind to the start of the program. However, aftera brief interval when the non-linear content has downloaded, the usermay then be shown a green bar at the start of the program guide or surfguide indicating that the user may rewind to the beginning of the showand watch from the beginning.

Further, the user can then hit the record button and the show may berecorded from the beginning. Two or more program streams for the sameprogram may be recorded simultaneously. Further, media content may bestreamed at speeds faster than 1× either on the same program stream orover multiple program streams.

Some embodiments may include a method of receiving video or mediacontent streamed over a transmission network. The method may includesimultaneously receiving the streamed media content while providing thestreamed media content for viewing at a playback rate. Further, themethod may, upon receiving a request to change playback of the streamedmedia content to a different playback point, implement one or more ofthe following steps:

-   -   a. determining if media content for the different playback point        is available in a buffer storing media content (e.g., a local        media content storage buffer);    -   b. transmitting a request over the transmission network for        additional media content for the different playback point if,        for example, the media content for the different playback point        is not available in the buffer;    -   c. receiving a multimedia transmission (e.g., a video or audio        multicast stream) including the additional media content over        the transmission network;    -   d. receiving additional media content at a rate higher than the        playback rate for the media content; and    -   e. storing the additional media content locally, for example, in        the local media content storage buffer.        Alternatively, the method may, either automatically or upon        receiving a request to play media from a different playback        point, perform a method with one or more of the following steps:    -   a. receiving information (e.g., in a second multicast stream)        including additional media content irrespective of whether or        not a request was transmitted over the transmission network;    -   b. determining if the additional media content is related to the        media content being viewed;    -   c. if the additional media content is not in the local media        content storage buffer, then receiving the additional media        content (e.g., via second multicast stream), and storing the        additional media content in the local media content storage        buffer; and    -   d. in alternate embodiments, storing the additional media        content regardless of whether or not the user has initiated a        request to play the media from a different playback point.

The media content streamed over a transmission network may be streamedat a rate greater than a playback rate, and the method may includestoring the media content in the local media content storage buffer.Receiving media content (e.g., via streaming) over a transmissionnetwork may include receiving the media content in a plurality oftransmissions (e.g., different content streams), each of thetransmissions providing a different segment of the media content.

Some embodiments may include an apparatus which may be configured toinclude a buffer for storing media content locally, one or moreprocessors, one or more network interfaces for a transmission network,one or more memories, and one or more output ports (e.g., a HDTV ormonitor output port). The memory may include executable instructions,that when provided to the processor, cause the apparatus to performreceiving media content (e.g., streamed media content) through thenetwork interfaces including any of the following functions:

-   -   a. determining if media content for the different playback point        is available in the buffer;    -   b. transmitting a request over the transmission network for        additional media content for the different playback point if,        for example, the media content for the different playback point        is not available in the buffer;    -   c. receiving a multimedia transmission (e.g., a video or audio        multicast stream) including the additional media content over        the transmission network;    -   d. receiving additional media content at a rate higher than the        playback rate for the media content; and    -   e. storing the additional media content locally, for example, in        the buffer.

Alternatively, the memory in the apparatus may include instructionswhich, when implemented in the processor, perform one or more of thefollowing steps:

-   -   e. receiving information (e.g., in a second multicast stream)        including additional media content irrespective of whether or        not a request was transmitted over the transmission network;    -   f. determining if the additional media content is related to the        media content being viewed;    -   g. if the additional media content is not in the buffer, then        receiving the additional media content (e.g., via second        multicast stream), and storing the additional media content in        the buffer; and    -   h. in alternate embodiments, storing the additional media        content regardless of whether or not the user has initiated a        request to play the media from a different playback point.

Some embodiments may include a method for delivering a multicast stream.In exemplary embodiments, the steps of the method may include:

-   -   a. requesting streaming media content over a transmission        network;    -   b. receiving a related portion of the media content, different        from the media content being presently streamed, the related        media content portion being received as part of a multicast        stream over the transmission network.        The method may further include utilization of the multicast        stream by a plurality of receiving units. This step may        additionally include at least one of the receiving units        utilizing the related media content portion to change a playback        point in the streamed media content.

In still further embodiments, the method may include receiving streamingmedia content on more than one media stream (either successively orsimultaneously) from a transmission network at a rate higher than aplayback rate. The method may also include receiving a first linearportion of the media content on a first content stream, andsimultaneously receiving a second linear portion of the media content ona second content stream. Exemplary embodiments of this method includereceiving a media stream where a beginning point of the second linearportion of the media content about matches an end point of the firstlinear portion of the media content.

Further, the method may include streaming a first linear portion of themedia content on a first content stream, and simultaneously streaming asecond linear portion of the media content on a second content stream.Alternatively, the method may include streaming the first portion of themedia content on the first content stream and then streaming the secondportion of the media content on the first content stream. Additionally,the method may also include streaming the second portion of the mediacontent on the second content stream, then streaming the first portionof the media content on the second content stream.

-   -   a. Some embodiments may include an apparatus which may be        configured to include a buffer for storing media content        locally, one or more processors, one or more network interfaces        for a transmission network, one or more memories, and one or        more output ports (e.g., a HDTV or monitor output port). The        memory may include executable instructions, that when provided        to the processor, cause the apparatus to perform receiving media        content (e.g., streamed media content) through the network        interfaces including performing one or more of the following        functions: requesting streaming media content through at least        one network interface;    -   b. receiving a related portion of the media content, different        from the media content being presently streamed, the related        media content portion being received as part of a multicast        stream through the network interface.

The apparatus may further include instructions for receiving through thenetwork a multicast stream that is adapted for utilization by aplurality of receiving units. The apparatus may utilize the relatedmedia content portion to change a playback point in the streamed mediacontent.

In still further embodiments, the apparatus may include instructionswhich, when executed, cause the microprocessor to coordinate receivingstreaming media content on more than one media stream (eithersuccessively or simultaneously) from the network interface at a ratehigher than a playback rate. The apparatus may also include instructionsfor receiving a first linear portion of the media content on a firstcontent stream through the network interface, and simultaneouslyreceiving a second linear portion of the media content on a secondcontent stream through the same or a different network interface.Exemplary embodiments of this apparatus include instruction which, whenexecuted, cause the network interface to receive a media stream where abeginning point of the second linear portion of the media content aboutmatches an end point of the first linear portion of the media content.

Further, the apparatus may include instructions which, when executed,cause the network interface to receive a first linear portion of thestreaming media content on a first content stream, while simultaneouslyreceiving a second linear portion of the steaming media content on asecond content stream. Alternatively, the apparatus may includeinstructions which, when executed, cause the network interface toreceive a first portion of the streaming media content on the firstcontent stream and then receiving the second portion of the streamingmedia content on the first content stream. Additionally, the apparatusmay include instructions which, when executed, cause the networkinterface to receive the second portion of the streaming media contenton the second content stream, and then receive the first portion of themedia content on the second content stream.

While the present summary of the disclosure talks in terms of thetermination device, the invention is not limited to the terminationdevice. The invention includes the systems and methods associated withthe network and with the central system supplying the media content suchas a “headend” or Internet Server location. For example, each of theabove summarizes of the invention may be restated in terms of 1) thenetwork transporting the streams, 2) the headend or Internet server orother central location generating the streams, and 3) the overall systemsupplying the streams over the network to the termination devices. Theseaspects will be dealt with in the claims below and are not repeated herefor brevity.

Aspects of the present disclosure allow a network interface device toprovide more features and a significantly enhanced user experiencewithout unnecessarily limiting the number of users by requiring numerousunicast streams to individual users interface device. Further, thesystem is highly scalable and provides significant cost savings to thenetwork provider.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the disclosure and the advantagesthereof may be acquired by referring to the following description inconsideration of the accompanying drawings, in which like referencenumbers indicate like features, and wherein:

FIG. 1 illustrates one embodiment of a media broadcast distribution anddelivery system;

FIG. 2-7 illustrate various embodiments of the media delivery streamwhich may be used independently or in combination;

FIG. 8 illustrates an exemplary method which may be implemented by oneor more embodiments;

FIG. 9 shows a more detailed block diagram of the interface device 26;

FIG. 10 show a more detailed block diagram of the central system 22; and

FIG. 11 shows a channel banner bar employing aspects of the presentdisclosure.

DETAILED DESCRIPTION

In the following description of the various embodiments, reference ismade to the accompanying drawings, which form a part hereof, and inwhich is shown by way of illustration various embodiments. It is to beunderstood that other embodiments may be utilized and structural andfunctional modifications may be made without departing from the scope ofthe disclosure.

FIG. 1 illustrates a media stream processing and distribution system 20that may be utilized by embodiments of the disclosure. The distributionsystem 20 generally comprises one or more central system(s) 22 which mayinclude one or more servers and be configured as a headend and/or a website and/or ftp site and/or a satellite hub and/or a telephone switchingcenter, one or more networks such as network 24, at least one interfacedevice 26 such as a personal computer and/or set top box (STB), and/orsatellite receiver, and/or wireless receiver such as a smart phone orwimax device (generally a plurality of interface devices 26 a-26 n), andat least one display device 28 such as a monitor or television(generally a plurality of display devices either associated with oneinterface device or different interface devices 28 a-28 n). In someembodiments, the interface device and the display device may beintegrated into the same unit. The devices may also have one or moreremote controls 34 associated with the interface device 26 and/ordisplay device 28. The distribution system 20 is generally implementedas a media service system wherein the provider (or vendor) generallyoperates the central system 22 and the network 24, and also may providea user (e.g., a subscriber, a client, a customer, a service purchaser,an end user, etc.) with the interface device 26. Alternatively, thedistribution system 20 may be implemented over a network such as theinternet, a wireless network, and/or a satellite network.

The interface device 26 is generally located at the end user location(e.g., home, tavern, hotel room, business, etc.). In cable, telephone,and satellite systems, the interface device 26 is generally provided bythe cable/satellite/telephone system but may alternatively be purchasedand provided by the end user. In these systems, these devices aretypically called settop boxes, network interface units, and/or cablecards. In many cases, the display device 28 is generally provided by theend user. The display device 28 and/or interface device 26 may be atelevision, high definition television (HDTV), monitor, host viewingdevice, MP3 player, audio receiver, telephone, PDA, smart phone, tablet,radio, personal computer, media player, digital video recorder, gameplaying device, etc. The display device 28 may be implemented as atransceiver having interactive capability in connection with theinterface device 26, the central system 22, or both the interface device26 and the central system 22. Alternatively, as discussed above, theinterface device and the display device may be integrated into the samedevice.

FIG. 9 shows a more detailed block diagram of the interface device 26.In this exemplary embodiment, the one or more processor(s) 29 andmemories 31 may interface with other devices in the interface device 26by virtue of the bus 61. For example, the processor(s) may interfacewith the remote control 34 via a receiver 62. The remote control mayalso communicate directly with the display device 28. The processor(s)29 may interface with a home network 65 via a home network interface 64.The home network interface may be variously configured to support awireless connection to a home network, the internet, and/or a multi-roomDVR interface. The processor(s) 29 may also be coupled to a distributionnetwork interface unit 25 which may be configured to include one or moretuners (preferably three or more), QAM and/or QPSKmodulators/demodulators, in-band and out-of-band signaling interfacesand demultiplexers. The network interface unit 25 may also include adata switch for routing data to the processor(s) 29, to the memorysubsystem (31), the system bus 61, the media storage 32, and/or thedecoder system (e.g., a MPEG decoder). The network interface unit 25 maybe implemented as an application specific integrated circuit. TheDecoder system/graphics engine 27 includes a decoder for decompressingand/or decoding a multimedia stream and outputting the stream to adisplay 28. One or more security processor(s) 60 are also included forensuring that the video may be securely received and stored.

The central system 22 is generally coupled through the network 24 to theinterface device 26 and/or display device 28. The coupling may beimplemented as any appropriate hard-wired (e.g., twisted pair, untwistedconductors, coaxial cable, fiber optic cable, hybrid fiber cable, etc.)or wireless (e.g., radio frequency, microwave, Ku or Ka band, infrared,etc.) coupling and protocol to meet the design criteria of a particularapplication. While the distribution system 20 is illustrated showing oneinterface device 26 coupled to a respective one device 28, eachinterface device 26 may be implemented having the capability of couplingmore than one display device 28 (not shown). The central system 22 mayinclude one or more servers 30. In alternate embodiments, the centralsystem may also include amplifiers, pre-amplifiers, data servers,computers, processors, security encryption and decryption apparatuses orsystems, and other devices configured to transmit or stream media(including video and/or audio) over a network 24.

FIG. 10 shows an exemplary central system 22. In this embodiment, aplurality of servers 30 are coupled via a switch/multiplexer 61 to aplurality of modulators/demodulators (e.g., QAM units 78, QPSK units 79)and a combiner splitter 81 to the distribution network 24. The serversmay each comprise media storage 73 for storing multimedia includingprograms, a memory such as memory system 70, one or more processors 71,and an I/O processor 75 for controllably outputting media streams. Theswitch/multiplexer 61 may be programmed directly and/or controlled viacentralized network controller(s) 76. The central system may alsoreceive media from the Internet, a FIDDI back end ring, and/or a privatenetwork 82 via a modem/network interface unit 80.

The network 24 may be variously configured. In one exemplary embodiment,it may be configured as a media stream distribution network (e.g.,cable, satellite, etc.) to selectively distribute (e.g., transmit and/orreceive) media service provider streams (e.g., standard broadcasttelevision, radio, digital television, HDTV, audio, MP3, text messaging,and/or games, etc.) to the interface devices 26 and/or the receivers 28.These streams may generally be distributed based upon (or in responseto) requests from the interface device which may be initiated directlyor indirectly by actions of the users. For example, in a subscribersystem, this may be determined by the level of service the client haspurchased (e.g., basic service, premium movie channels, etc.), the typeof service the client has requested (e.g., standard TV, HDTV,interactive messaging, video on demand, pay-per-view,impulse-pay-per-view, etc.), and other factors which may be used todetermine the media streams that are sent to and/or received from aparticular user.

For certain legacy systems such as cable television headend systems,Digital video and/or media is often overlaid over the convention 6 MHzanalog transmission bandwidths which conventionally corresponded to thebandwidth of a 6 MHz analog television channel. To remain backwardcompatible, digital data (e.g., one or more MPEG streams) was overlaidon the same 6 MHz bandwidths that were previously occupied by a singleanalog television channel. The type of modulation and resolution of thepicture (standard or high definition) impacts the number of digitalchannels that may be carried over standard 6 Mhz bandwidths. Forexample, many digital television systems over a cable/fiber architectureutilize some form of quadrature amplitude modulation (either QAM either64 QAM or 256 QAM). For these types of systems, the QAM device mayreside in the central system and interface to the network 24. One QAM atthe current common modulation (256 QAM) can stream ˜38 mbit/sec of data.Multiple video streams may be encoded in an MPEG transport stream andoutput through each QAM, for example 10-12 standard definition videostreams, or 2-3 high definition video streams. The central system 22 mayincorporate hundreds of QAM devices. Each video stream is typicallyidentified by a different program number so it can be individuallydisplayed. The interface device 25 receives all 38 mbit of data, butonly displays the selected channel even though other channels and/ordata streams are distributed within that particular QAM. Many televisioncontent suppliers are moving away from the 6 MHz bandwidth constraintsimposed by legacy systems as they convert entirely to digital systems.For example, the bandwidth of each QAM device can increase to tens oreven hundreds of MHz. Further, the delay associated with tuning a tuningdevice to each QAM channel may be avoided as the size of the QAMchannels increase. Additionally, multiple redundant data streams and/ormultiple redundant tuners and/or large caching media storage devices maybe utilized to cache large amounts of data sent over one or more QAMchannels. This improved design of the modulation devices and/orinterface device 26 can be advantageously used to provide ansignificantly enhanced user experience. This enhanced user experiencemay correspond to an add-on package that the cable operator may chargethe end user to receive, e.g., $10/month.

For example, the user may surf through channels at any time during theday, not necessarily just at the top of the hour or half hour. As apractical matter, it is almost impossible to surf through all of thehundreds of channels “at the top of the hour” to select a programwithout missing the start of at least some programs. Once a user settleson a program he or she wishes to watch, the user often has missed thefirst few minutes of the program. Aspects of the present disclosureallow the start of the programs to be cached either initially or as partof a redundant transmission. Thus, the user may “start over” the programeven though in liner time, he or she has already missed the start of theprogram. In this manner, the user may begin watching a program at anyarbitrary entry point, and then simply select to start over the programfrom the beginning.

FIG. 11 shows a banner guide (program progress bar) as modified for usewith the present invention. Referring to FIG. 11, the portion in red 87shows the how a user cannot view past programming where the device wasnot previously “tuned” to the channel when the program started.Conventionally, this problem was often made worse when the user “tunes”away from the channel for some reason (e.g., boredom, commercial break,an embarrassing scene in the program, during violence, during a sexscene, etc.) and then returns to the program. In this case,conventionally, the red bar is advanced to the point where the userretuned to the program. If the user did not time the commercial break orscene correctly, he or she cannot simply rewind the program. A useroften naturally wants to rewind the program all the way to the beginningand certainly wants to be able to return to just before the commercialbreak ended. Conventionally, this has not been possible. Usingembodiments of the present disclosure, this inconvenience to the user isavoided. In the embodiments employing a caching tuner to predict thechannels of interest to the user, the shows are stored in the mediastorage 32 while the user has tuned away during, for example, acommercial break. At any given time, a user usually watches less thanthree programs. Most modern settop boxes, for example, already includethree to four tuners. The separate tuners, when not used for recordingmultiple programs, may be used to improve the user experience inaccordance with the present disclosure. Further, the cost of the tunershas fallen to the point where it is practical to include numerous tunersin a single interface device 26. In this case, by using past viewingpreferences over the last few minutes, the processor 29 in the interfacedevice may predict the programs the user is likely to tune to duringcommercial breaks and cache the media streams for those programs inanticipation of the user tuning to these programs.

In some embodiments of the disclosure which employ multiple streams orstreams downloaded faster than the program, the red bar appears onlytemporarily until the remainder of the program is downloaded. In theseembodiments, the length of the red bar may decrease to zero length aftera short period of time when the alternate program stream in downloaded.The red bar portion of the banner bar (program progress bar) may show anindication of the amount of time before the full program will beavailable for viewing and/or recording. Referring to FIG. 11, the redportion 87 indicates that the past portions of the program aredownloading and will be available in 30 seconds. The green portion ofthe progress bar labeled as 88 shows the portion of the program that iscurrently available in the media storage for trick play modes. Theportion of the banner bar shown in yellow 89 shows the portion of theprogram not yet broadcast. In addition to rewinding the program, theuser may at any time select to record the entire program. Thus, usingembodiments of the present disclosure, either the red bar isnon-existent such as where the interface device may input the entiredigital programming feeds (e.g., 5 100 MHz QAM channels and 5 tuners)together with the appropriate caching circuitry or where there isredundant non-linear programming feeds where selected channels may becached from the beginning where it is determined the user has shown aninterest in the channel.

While one exemplary example of an interface device 26 for accomplishingthese functions is described herein, aspects of the disclosure are notlimited to this implementation. For example, in one exemplaryimplementation, interface device 26 may include a demultiplexer 25,which can take an encoded transport stream (e.g., MPEG) and separate outthe selected video stream(s). Where the encoded transport streamincludes 7, 12, 24, 48, 64, 96, 128, and/or 256 different programstreams, the demultiplexer 25 may be configured to separate out one ormore desired programs and send those programs through one or moredecoders (e.g., a MPEG decoder) to one or more display devices 28. Forexample, in one exemplary embodiment, the most commonly watched programs(e.g., those with the highest ratings) may be grouped on a single QAMchannel. In this manner, these programs may be continuously cached(e.g., in media storage 32) and the user can switch between them andchannel surf back and forth between channels and back and forth in time.This two dimensional channel surfing allows the user much more freedomand enhances the user experience. Additionally, by using multiple MPEGdecoders and/or adaptive and predictive software in the processor 29 toanticipate the next channel, the user may simply switch between decodingdevices in decoder 27 and hence any perceived delays in changing thechannel by the user are avoided. In this manner, the user getsinstantaneous response to changing the channel and once on the channelcan navigate back and forth in time. The device can also view programidentification numbers (PIDs) or other tagging mechanisms to determinewhen a program starts and stops. Additionally, the device may cacheprograms while the device is turned off. In this manner, the userexperience is enhanced since the programs are ready when the user isready to view the programs. The demultiplexer 25 may output severalvideo streams simultaneously from the transport stream. The interfacedevice 26 generally comprises at least one respective media decoder 27,which will typically be an MPEG (motion pictures expert group) decoder,which may be utilized to decompress the selected video stream andprovides uncompressed analog or digital video output for the viewingdevice 28. Many interface devices available today include multipletuners/decoders 27, allowing the interface device 26 to tune to and/ordecode more than one stream at a time. This allows features such aspicture-within a picture (PIP) viewing features, for example. Theinterface device 26 may also include VOD (video on demand) features, aswill be described below.

Where the interface device 26 includes a media buffer and/or storage 32,which may be configurable for storing one or more video streams receivedby the interface device 26, the storage device may be variouslyconfigured. For example, the storage 32 may comprise one or more harddisks, solid state storage devices, and/or other storage devices.Interface devices 26 equipped with such storage devices are often knownas digital video recorders (DVRs). The storage 32 may be any type ofstorage device, for example hard disk drive, optical drive, volatile ornon-volatile memory, sold state memory, flash memory, etc. The interfacedevice 26 may allow video streams extracted by the demultiplexer 25 togo to either the storage 32, or the decoder 27, and/or to both. Themedia storage device 32 may be able to simultaneously store one or morevideo streams received from the demultiplexer 25, and also to play outvideo to the decoder 27 for display by the receiver 28. The decoder 27may dynamically switch between receiving and decoding (live) video fromthe demultiplexer 25, and (stored) video from the media storage 32. Theinterface device 26 may also include a processor 29, to control thecomponents of the interface device 26 and provide processing for variousactivities. The processor 31 may receive and interpret user commands,for example, from a remote 34. The interface device 26 may also includememory 31, which may be in the form of volatile or non-volatile memory,and may help provide buffering as well as containing machine executableinstructions for the processor 31 to execute.

In one exemplary embodiment, where the caching storage and QAM bandwidthmay have certain constraints, it may be desirable to utilize redundantnon-linear transmission to enhance the user transmission. FIG. 2illustrates a program video stream sent in real time at regular speed(1×). Basically, the program video is streamed at the rate it is viewed,therefore an hour-long video program will be streamed for one hour. Aswill be discussed below, embodiments of the disclosure include sendingvideo data at speeds and rates other than 1× speed to help enhance theuser experience.

In a Video on Demand (VOD) system, a viewer may select specific videocontent, such as by using a remote control 34, to request thecommencement of streaming of the selected video content from the centralsystem 22. Commands to pause, rewind, fast forward, etc. (often referredto as “trick play”) may be transmitted from the viewer back to thecentral system, for example, which will change the streamingaccordingly. In typical current systems, if a viewer wants to fastforward, the viewer presses the button on a remote control 34, whichsends a signal to the interface device 26 and a command is sent upstreamto the VOD servers 30 in the central system 22, which switch the videobeing streamed to the viewer to a special trick play linear video. Forfast forward, content showing video being fast forwarded is streamed atthe usual 1× speed. The viewer's interface device treats the fastforward video no differently than normal playback. Then when the viewerwishes to play the video again at normal speed, the process switchesback to normal speed video. This causes excessive latency for everybutton press, and limits the speed of fast forward and rewind normallyto 2× speed.

Traditional VOD sessions take up one video stream in the QAM for theentire time the viewer is watching the content. As shown in FIG. 2, theVOD stream 40 is still streamed at regular speed. If a viewer on acurrent system rewinds the content, or even pauses it, the viewer wastesbandwidth. If a viewer is watching a two hour movie, but pauses and/orrewinds it so that the viewing time is longer than 2 hours, morebandwidth is consumed than if the video was streamed to the viewer at ahigher speed and then buffered. For example, if a VOD movie was only 2hours long, the viewer might take three hours to watch it because ofinterruptions for pausing, rewinds, multiple viewings of a same sceneetc. If the content was 3 mbit/sec, and the traditional VOD stream wasopen for 3 hours, then a total of 32.4 gigabits of data may betransmitted (3 hours*60 minutes*60 seconds*3 mbit=32400 mbit).

By utilizing the media storage 32 buffer in an interface device 26 orDVR box, and broadcasting the linear media content faster than 1× (thespeed it takes to watch the content), some embodiments disclosed hereinprovide for several improvements. One advantage is that bandwidth can besaved. For example, the 3 mbit/sec video may be sent at 6 mbit/secspeeds, which would only require half the running time of the video, andonly 21.6 gigabits. (1 hour*60 minutes*60 seconds*6 mbit=21600 mbit).

In current systems, a viewer watching the same VOD resource X times,uses X times as much bandwidth as watching once would use. However bybuffering the content in accordance to one or more embodiments, no extrabandwidth is needed for the second showing. While this is a drasticexample, any savings of bandwidth can be advantageous.

Some embodiments may provide several advantages, including increasedutility and satisfaction for viewers. For example, a viewer may accessthe video content in a similar manner to a stored DVR recording. Viewersmay be able to “start-over” without launching a separate VOD session,and may also be able to perform other playback manipulation features,such as pause, fast forward, rewind, or jump ahead/jump back commandswithout requiring additional bandwidth. Such features may also have muchless latency, as well as support multiple levels of fast forward andrewind. For example, if the VOD video content is streamed at 2× or morespeed from beginning and buffered in a interface device 26, a viewer maythen be able to fast forward at a much higher frame rate, depending onhow much is buffered. At the very least, a viewer can fast forward at aminimum of however fast the video content is being streamed to them.Further, they could rewind at nearly any speed since all the videocontent would be buffered. Some embodiments may avoid any need forspecial “trick play” streams to simulate fast forward or rewind, aspreviously described.

FIG. 3 illustrates an embodiment for broadcasting or streaming a singleprogram at a higher speed. For this embodiment, a contiguous videoprogram 42 is streamed at 2× the normal data rate. An embodiment mayutilize twice the bandwidth for example by using two program blocks in aQAM. Although this example uses 2× speed, other higher or lower speedsare possible. After the stream has completed sending all of the data(which would take half the time) it may then start over and rebroadcastthe same content.

If part of the linear content requested is not in the buffer 32, anembodiment may provide for a switched multicast stream that can bereceived by any device needing that section of content, as will bedescribed in more detail below.

Embodiments disclosed herein provide other benefits besides those forthe VOD aspect of digital video. Non-VOD (linear) content may also bebroadcasted or streamed at 2× or faster speeds, and be buffered. Thismay provide benefits for viewers who wish to start a program over, butwithout for example opening a special VOD session to restart theprogram. Other benefits may include allowing viewers to watch “live” ascheduled broadcast program, but still fast forward through commercials.Further, multiple shows may be recorded on one tuner/decodersimultaneously. Embodiments disclosed herein include novel approaches onhow to stream such video and media content. Buffering does not need tobe contiguous. Further, by using switched multicast and/or more than onestream when a VOD session is required, a viewer can be transferred backto the linear stream sooner, and the VOD session discontinued, whichcould be used to save bandwidth.

Another advantage for embodiments disclosed herein is dual recording,whereby, for example, viewers can buffer an entire show. This isparticularly effective using the 2× transmission speed where the userhas tuned into the show before the show is half over. In one example ofdual recording, the entire program is broadcast twice consecutively at2× speed. This also has the advantage of letting users record two showsduring the same time period with one tuner, since the entire show can bebuffered in 50% of the show's length.

Some embodiments may provide for jump ahead-type features, which may,for example, allow users to jump ahead in the program instantly. Thisprocess is similar to fast forward, but is not contiguous. It allowsusers to skip portions of programming, such as commercials. A similarfeature is the jump back feature, which allows users to instantly jumpback in a broadcast. The jump back feature is similar to rewind but isnot contiguous.

FIG. 4 illustrates an exemplary embodiment that utilizes twosimultaneous streams running at 1× playback rate. A media program may bedivided into two or more segments, and the segments streamedsimultaneously on the multiple streams (or channels). For the embodimentshown in FIG. 4, a stream 42 a starts at 0% and completes at 50% of thelinear content, and the second stream 42 b starts at 50% and completesat 100%. As a feature that aids backwards compatibility, the firststream 42 a may go from 0% to 100% (normal streaming) and the secondstream 42 b may go from 50%-100%, then restart at 0% and complete at 50%(i.e. start at the second half of the content, stream to the end, andthen stream from the beginning of the content until the half way point).In effect the same program (media content) is sent on two streams thatare half way out of phase with each other. A larger number of streamsmay be used, with the content phased appropriately for the number ofstreams. A viewer tuning in may be automatically tuned (by the system)to view the stream appropriate for when the viewer started viewing. Thisembodiment, for example, allows viewers who just tuned in to fastforward or jump ahead in the program if it is less than 50% complete, orthey can rewind or jump back if it is over 50% complete.

FIG. 5 illustrates an embodiment that utilizes two content streams 42transmitting staggered segments of content. After both streams completethirty seconds of content, they jump ahead thirty seconds of contentfrom their respective end points. When a user first tunes in, he maystart viewing the stream 42 b, which is streaming “later” content. Theuser would then be switched to content in the buffer, as provided byboth streams. This embodiment is helpful, for example, for viewers thatare familiar with a feature of skipping forward in a program by jumpingahead 30 seconds. When a user tunes in, he can immediately jump backthirty seconds (by switching to stream 42 a), in case he just missedsomething exciting. Once thirty seconds have passed he can then fastforward or jump ahead 30 seconds, as there would be at least that muchcontent in the buffer. As more time passes the viewer can then fastforward or jump further ahead, because the buffer fills at 2× the rateof viewing. This embodiment may utilize, for example, any predeterminedlength of time for content segments and content stream phase, from a fewseconds to several minutes. Further, the length of time may be variedduring broadcast transmission. For example, if user behavior indicatesthat viewers just tuning in at certain times (such as on the hour orhalf hour) would prefer to be able to jump back two minutes, the timelength segments may be adjusted accordingly for those times.

In preparing media content for streaming, an embodiment may performoperations to enable the interface device 26 to immediately decode mediaat the beginning of any 30 second segment. For example, with MPEGcompressed video, the first frame of each 30 second segment may be anI-frame, which does not require any previous or subsequent frames inorder to decode. Alternatively, the start and end positions of segmentsmay be adjusted so that each segment starts with an I-frame, and thesegments will be contiguous but may vary in length by a small amount oftime.

This embodiment may enable such advantages as fast forward after a shorttime period (as previously described), an ability for dual recording,and an ability to jump forward or backward by a certain amount, forexample. As previously described in an exemplary embodiment, viewers canimmediately jump back 30 seconds upon tuning in, or any time after that,presuming that the past content is kept in the buffer. Further, if thevideo content loops (as previously described for other exemplaryembodiments) the user can jump back to the beginning of the show whenthat content is in the buffer. Further, the surf bar shown in FIG. 9 maybe modified to reflect the available content that is currently in thebuffer.

FIG. 6 illustrates an embodiment that, for example, may allow viewerstuning in at various times to start a program over. This embodimentincludes a basic content stream 40 sent at 1×, for example. One or moresecondary streams 42 a, 42 b may start at various times duringtransmission of the program stream 40, for example, when the stream, orprogram, is ⅓ over, and when it is ⅔ over (20 and 40 minutes into anhour long program). In this example, if a viewer tunes in at 20 minutesinto the program the basic stream 40 will buffer the program from 20-60minutes, and the secondary stream 42 a that just started would buffer0-20 minutes. Similarly if a viewer tunes in at 40 minutes, the basicstream 40 would buffer from 40-60 minutes, and the secondary stream 42 bwould buffer from 0-40 minutes. In this example, the secondary stream 42b may be streamed at, for example, a minimum rate of 2×, causing thetotal bandwidth of the channel to be, for example, 3× the normal bitrate. However, this is offset, for example, by the first 20 minutesrequiring only 1× speed.

Further details for the exemplary embodiment illustrated in FIG. 6 willnow be provided. Once the basic stream 40 is 33% complete, a secondarystream 42 a starts at 1× speed. This stream 42 a will stream the samecontent from 0%-33%. A viewer who tunes in after the program starts (butbefore the secondary stream 42 a commences) can restart the program oncethe second stream 42 a commences. The basic stream 40 continues and maybe buffered for when the secondary stream 42 a stops at 33% (whichoccurs when the program is 66% complete). Once the secondary stream 42 ais completed, the basic stream 40 is 66% complete, in this example.Another secondary stream 42 b is started when secondary stream 42 a iscompleted. The secondary stream 42 b streams content from 0%-66%,allowing a user who tuned in when the program was between 33%-66%complete, for example, to restart it. The secondary stream 42 b may bestreamed at 2× to complete 66% before the basic stream 40 completes itsremaining 33% of the program content. In alternate embodiments, othermultipliers may be used for each of the respective streams such as2×/2×/4× or 4×/4×/8×.

An advantage of this embodiment is that the program content may bestreamed in a standard fashion using the basic stream 40, and beaccessible by various types of equipment and available at variousprovider's service levels. Additional secondary streams 42 may belimited to certain service levels that promote the ability for a viewerto start over, or other functions. This embodiment may also includevariations in the starting time, data rates, or number of secondarystreams 42, which may be adjusted and/or selected to best match generalor specific viewer habits or provider requirements. Such parameters mayalso be adjusted, for example, based on available bandwidth, popularityof the program content or other parameters.

Some embodiments may include a feature of spawning a switched unicast ormulticast VOD session to viewers who tune in to a program and wish tostart over or rewind/fast forward to a part in the program that is notin their buffer. An embodiment may continue to buffer the program, butmay use an additional tuner to spawn a special VOD session with a serverthat will broadcast the parts of the program that the viewer isattempting to watch. A feature of this embodiment for multicast streamsis that other receivers (interface devices 26, FIG. 1, etc.) on thedistribution network 24 may also be notified of the special VOD session.Such notification may comprise in band or out of band signaling, or byother data transmission methods. The notification may includeidentification of the program, identification of the portions to bebroadcast, rate of data transmission, stream and/or channelidentification and time the information will be broadcast. Otherinterface devices may determine, based input from a user or signal fromanother source, that they will also tune in to and buffer the extracontent. The determination may be made based on one or more factors,including: if a receiver has a spare tuner; if the content is in thesame QAM; whether the receiver is tuned to the program for which theextra content is not yet buffered; whether the viewer has a history ofutilizing trick play features generally or for the specific program;etc. When the VOD session content stream reaches a point in the programwherein the content is in the buffer (from the original stream), thesystem 20 may commence providing video content from the buffer and closethe VOD session. If other receivers indicate that they are alsoreceiving the content of the special VOD session, then it may remainactive even though the original requesting receiver is no longer usingit. Interface devices or receivers may selectively tune in to onlyreceive certain portions of the streamed or buffered content, based onthe requested/required content and when that content portion will bestreamed.

A server 30 according to one embodiment may include procedures fordetermining how to prepare a multicast stream of content based onrequests from multiple interface devices. Requests for content frominterface devices may include an urgency indication for how quickly theinterface device requires the requested content. For example, a highurgency may indicate that a viewer is fast forwarding and the content isneeded as soon as possible to support this operation. In anotherexample, a low urgency may be indicated where the interface devicerequires some content to complete its buffer copy of the program, butthe missing content is not immediately needed. Interface devices orservers may also use prediction processes to determine if some missingcontent may be required based on a viewer's activities, such as previousfast forwarding through commercials. The server 30 may prepare a contentstream to satisfy requirements from multiple interface device requests,including ordering the stream sequence to prioritize content based onurgency indications.

FIG. 7 illustrates another exemplary embodiment having two contentstreams 42 for streaming a single program. Both content streams 42 arestreamed linearly at 1× speed, with the first stream 42 a streaming0-50% and the second stream 42 b streaming 50-100% of content. As anexample, consider a viewer who starts watching a one hour long programat its scheduled start time. After 15 minutes the viewer wishes to fastforward to the time indicated by line 50. Since, in this example, bothstreams 42 a and 42 b are streamed at 1× speed, the viewer would onlyhave 0-25% and 50-75% of the program content in the buffer of hisinterface device. According to the embodiment, the system would send aseparate multicast stream 44 to the interface device. The stream 44would start at 25% and go to 50% of the content, thereby providing therequired content. The stream 44 may be broadcast at a speed greater than1×, to facilitate features such as fast forwarding. Once the stream 44is 50% complete, it may be stopped, since the interface device wouldhave buffered the content from the stream 42 b, which started at 50%.Alternatively, the stream 44 may continue, since other interface deviceson a network may be receiving and buffering content.

Embodiments disclosed herein may support backwards compatibility withcurrent systems in that a regular 1× stream is transmitted, and when aseparate content stream is sent at greater than 1× speed, it may be senton a different program (channel) number, so that a non-bufferinginterface device can continue to play the live 1× stream and ignore thestreams on other channels. This feature may require only a single tunerif the streams used for a single program are sent through the same QAMdevice.

The described embodiments may be combined in various ways to define aset of features most advantageous for specific networks, receivers,viewers, audiences, and types of program. Also, as previously described,certain features may be utilized or emphasized for certain parts of aprogram content broadcast.

FIG. 8 illustrates a method according to one or more embodimentsdisclosed herein. Streaming video or media content such as broadcasttelevision is received, as shown in step 100. This video content may bestreamed at a standard playback rate, or at a higher rate, as previouslydescribed. If sent at a higher rate, the extra video content will bebuffered, and playback will be from the buffer. The receiving unitprovides the video content for playback, at the proper playback rate, asshown in step 102. For example, a receiving unit, such as an interfacedevice for example, decodes the video content, and provides a signal toa television set for viewing. At some point during the playback, amessage may be sent to one, some or all interface devices on a networkthat a separate multicast stream is being sent with other portions ofthe video content, as shown in step 104. This may happen, for example,because another interface device on a network issued a request for theother portions of the video content. These other portions may includecontent already streamed or additional content from the program that hasyet to be streamed. If the interface device already has the additionalcontent in its buffer, then it would take no action, as shown in step106. However, if it does not have this content, it may select to receivethis new stream of video content, and store it in a buffer, as shown instep 108. Some applications of the disclosed embodiments may enablechoosing whether to receive this related content based on certainconditions, for example: amount of storage available; amount of timeremaining in a program; historic habits of users of the interface devicefor rewinding or fast forwarding; etc. The steps 106 and 108 may notoccur at all during playback of a program, or they may occur multipletimes.

At some point during the playback, a request may be received from a userof the interface device for a trick play operation, as shown in step110. An embodiment may be configured to enable use of buffered videocontent for the trick play operation, whether it is fast forwarding,rewinding, jumping forwards or backwards, or starting over, for example.The embodiment may enable a check as to whether the video content forsuch trick play operations is already in the storage buffer, as shown instep 112. If it is, then the operations may be performed using thestored content, as shown in step 118. If the video content is not yetbuffered, a request may be sent to the server for the required videocontent, as shown in step 114. The server may then establishe a separateVOD stream to provide the required video content, and the interfacedevice receives this video content and plays it back as required, aswell as storing it in the buffer as needed, as shown in step 116. If theseparate VOD stream is a multicast stream, then other interface devicesmay receive the stream, and depending upon the status of the interfacedevices, they may also buffer the video content. In the exemplaryembodiment of FIG. 8, steps 108 and 116 are similar; one difference isthat for step 108, the additional video content is streamed because of arequest by another interface device on the network, while a particularinterface device may not need the extra video content, but has theopportunity to buffer it anyway. For step 116, the interface deviceneeds the extra video content, and has specifically requested it from aserver.

At the end of the program, or when the viewer switches off the receiver,the buffer may be cleared of all buffered video content. Alternatively,the viewer may be given the option to save the program.

The central system 22 may be configured to be responsive to requests forcertain video content, wherein the request may include a time-definedportion for the requested content. The central system may then beconfigured to create a new temporary stream, and transmit the requestedcontent. The central system 22 may also send a separate message to allreceivers identifying the content, so that receivers may determinewhether they will buffer the content. Certain portions of content may beprepared in advance of the program transmission, based on likelihoodthat such portions will be requested by typical user's trick playactions. For example a content segment from the beginning of the programmay be readily available for immediate streaming, since many viewerstuning in late may wish to rewind to see the beginning of the program.

Although exemplary embodiments have been described in terms oftelevision program broadcast over a cable network, embodiments disclosedherein may be utilized for any type of streamed content, including audioand video; and any type of content delivery system, including RFtransmission, wireless broadcast, wireless networks, internet protocols,etc.

One or more aspects of the disclosures may be embodied incomputer-usable data and computer-executable instructions, such as inone or more program modules, executed by one or more computers,processors, or other devices. Generally, program modules includeroutines, programs, objects, components, data structures, etc., thatperform particular tasks or implement particular abstract data typeswhen executed by a processor in a computer or other device. The computerexecutable instructions may be stored on a computer readable medium suchas a hard disk, optical disk, removable storage media, solid statememory, RAM, etc. As will be appreciated by one of skill in the art, thefunctionality of the program modules may be combined or distributed asdesired in various embodiments. In addition, the functionality may beembodied in whole or in part in firmware or hardware equivalents such asintegrated circuits, field programmable gate arrays (FPGA), and thelike. Embodiments may be implemented in software to be provided toexisting central system systems and servers, and to interface devicesand DVRs. Further, embodiments may be embedded in the hardware orfirmware of new equipment.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

1. A method comprising simultaneously streaming to a interface device afirst segment of a media program on a first logical channel of atransmission network and a second segment of the media program,different from the first, on a second logical channel of thetransmission network.
 2. The method of claim 1 wherein at least onesegment is transmitted at a rate faster than a playback rate for themedia program.
 3. The method of claim 1 including streaming a thirdsegment of the media program on a multicast stream over the transmissionnetwork, the multicast stream being separate from the first logicalchannel and the second logical channel.
 4. The method of claim 3 whereinthe third segment is streamed on the multicast stream at a rate fasterthan a playback rate for the media program.
 5. The method of claim 1including receiving a request for a specific portion of the mediaprogram and streaming a third media segment that includes the requestedspecific portion of the media program.
 6. A method comprisingsimultaneously streaming on two different logical channels in atransmission network alternating segments of portions of a media programto an interface device.
 7. The method of claim 6 wherein the segmentsare about thirty seconds in length.
 8. A method comprising: at a firsttime point, commencing streaming a media program on a first channel overa transmission network by a processor; at a second time point after thefirst time point, and while the media program is still streaming on thefirst channel, commencing streaming the media program again on a secondchannel; at a third time point after the second time point, and whilethe media program is still streaming on the first channel, commencingstreaming the media program again on a third channel; and providinginformation over the transmission network regarding which portions ofthe media program are being transmitted on the respective channels inorder to enable trick play features.
 9. The method of claim 8 whereinthe second time point is about equal to one third of a time length ofthe media program, and the third time point is about equal to two thirdsof the time length of the media program.
 10. The method of claim 8wherein the step of streaming the media program on the third channelincludes streaming the media program at a rate higher than a playbackrate.
 11. The method of claim 8 wherein the step of streaming the mediaprogram on the second channel includes streaming the media program at arate higher than a playback rate
 12. A method comprising: streaming afirst media content stream over a transmission network; receiving arequest from the transmission network to provide a related portion ofthe media content different from the first media content then beingstreamed; while continuing to stream the first media content, providingthe related media content on a multicast stream over the transmissionnetwork configured to be receivable by a plurality of interface devicesfor the purpose of enabling playback points earlier in time.
 13. Themethod of claim 12, wherein streaming the media content streamed over atransmission network includes streaming the media content at a ratehigher than a playback rate for the media content.
 14. The method ofclaim 12, wherein streaming the media content over a transmissionnetwork includes streaming the media content on a plurality of separatecontent streams.
 15. A method comprising simultaneously caching the datafrom a plurality of channels that have not been selected for recordingto enable trick play features.
 16. The method of claim 15 comprisingusing a media storage device to simultaneously store multiple programsegments for enabling rewinding to the start of a programs regardless ofwhether the channel was selected since the beginning of the program. 17.A central system apparatus comprising: a server; a processor; and amemory, including executable instructions, that when provided to theprocessor, cause the server to perform: streaming a first media contentstream over a transmission network; receiving a request from thetransmission network to provide a related portion of the media contentdifferent from the first media content then being streamed; whilecontinuing to stream the first media content, providing the relatedmedia content on a multicast stream over the transmission networkconfigured to be receivable by a plurality of interface devices for thepurpose of enabling playback points earlier in time.
 18. A methodcomprising: receiving media content streamed over a transmissionnetwork; while receiving the streamed media content, providing thestreamed media content for viewing at a playback rate; upon receiving arequest to change playback of the streamed media content to a differentplayback point, determining if media content for the different playbackpoint is available in a local media content storage buffer; if mediacontent for the different playback point is not available in the localmedia content storage buffer, transmitting a request over thetransmission network for additional media content for the differentplayback point; receiving a multicast stream including the additionalmedia content over the transmission network, the additional mediacontent being streamed at a rate higher than the playback rate for themedia content; and storing the additional media content in the localmedia content storage buffer.
 19. The method of claim 22 furtherincluding: without transmitting a request over the transmission network,receiving information regarding a second multicast stream includingadditional media content; and determining if the additional mediacontent is related to the provided streamed media content for viewing,and if the additional media content is not available in the local mediacontent storage buffer, then receiving the second multicast streamincluding additional media content, and storing the additional mediacontent in the local media content storage buffer.
 20. The method ofclaim 22 wherein the media content streamed over a transmission networkis streamed at a rate greater than a playback rate, and the methodincludes storing the media content in the local media content storagebuffer.
 21. The method of claim 22 wherein receiving media contentstreamed over a transmission network includes receiving the mediacontent in a plurality of content streams, each of the content streamsproviding a different segment of the media content.